/*
实验1-2 爆气球
分数 20
作者 陈越
单位 浙江大学

pqq.jpg

爆气球对孩子们来说是很好玩的游戏。假设有 n 只气球被布置在一条直线上，游戏的目标很简单，就是爆掉尽可能多的气球。但是这里我们加一条特殊的规则 —— 你只能跳一次。我们假设聪明的娃穿了件浑身带刺的衣服，跳到某个位置，躺平（如下图所示），这样气球只要碰到娃身体的任何部分都会立刻爆炸。那么你的任务就是告诉娃应该跳到哪里，才能一次爆掉最多的气球。

输入格式：

输入第一行有两个正整数：n（≤10^5）为一条线上布置的气球的数量；h（≤10^3）为孩子伸直双臂能达到的高度。第二行给出 n 个整数，
每个对应一只气球在直线轴上的坐标。题目保证坐标按递增顺序给出，所有坐标值在 [−10^6,10^6] 区间内。
输出格式：

在一行中输出孩子跳跃的位置坐标，使得孩子跳到这个位置然后躺平能够爆掉身下最多的气球；
随后输出能爆掉的气球的最大数量。如果这个坐标不唯一，输出最小的那个值。

一行中的数字间应有 1 个空格，行首尾不得有多余空格。
输入样例：

11 120
-120 -40 0 80 122 140 160 220 240 260 300

输出样例：

120 5

注意：跳到从 120 到140，或 240 到 260 之间的任何位置，都可以爆掉 5 只气球，所以 120 作为最小的坐标被输出。
*/

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, h;
    cin >> n >> h;
    vector<int> balloons(n);
    for (int i = 0; i < n; ++i) {
        cin >> balloons[i];
    }

    int max_balloons = 0;
    int best_position = balloons[0];

    for (int i = 0; i < n; ++i) {
        int right = balloons[i] + h;
        int count = 0;
        int position = balloons[i];
        for (int j = i; j < n && balloons[j] <= right; ++j) {
            position = balloons[j] - h;
            ++count;
        }
        if (count > max_balloons) {
            max_balloons = count;
            best_position = position;
        }
    }

    cout << best_position << " " << max_balloons << endl;

    return 0;
}